Convert GailLinkButton to GtkLinkButtonAccessible
authorMatthias Clasen <mclasen@redhat.com>
Mon, 27 Jun 2011 03:48:54 +0000 (23:48 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 5 Jul 2011 20:08:53 +0000 (16:08 -0400)
gtk/a11y/Makefile.am
gtk/a11y/gail.c
gtk/a11y/gaillinkbutton.c [deleted file]
gtk/a11y/gaillinkbutton.h [deleted file]
gtk/a11y/gtklinkbuttonaccessible.c [new file with mode: 0644]
gtk/a11y/gtklinkbuttonaccessible.h [new file with mode: 0644]
gtk/gtklinkbutton.c

index d025add7d199bab0640b33eff591f9dab265a96f..a2248985a446185db5a62d511bb32769a9e5a878 100644 (file)
@@ -22,7 +22,7 @@ gail_c_sources =                      \
        gtkimageaccessible.c            \
        gailimagecell.c                 \
        gtklabelaccessible.c            \
-       gaillinkbutton.c                \
+       gtklinkbuttonaccessible.c       \
        gailmisc.c                      \
        gailmenu.c                      \
        gailmenushell.c                 \
@@ -74,7 +74,7 @@ gail_private_h_sources =              \
        gtkimageaccessible.h            \
        gailimagecell.h                 \
        gtklabelaccessible.h            \
-       gaillinkbutton.h                \
+       gtklinkbuttonaccessible.h       \
        gailmisc.h                      \
        gailmenu.h                      \
        gailmenushell.h                 \
index 93751f93009850bcf429e16472f03029b26502c8..0aeb9d3da1f8358ecb755a86f5ffbe50fc65ddab 100644 (file)
@@ -33,7 +33,6 @@
 #include "gailcontainercell.h"
 #include "gailexpander.h"
 #include "gailimagecell.h"
-#include "gaillinkbutton.h"
 #include "gailmenu.h"
 #include "gailmenushell.h"
 #include "gailmenuitem.h"
@@ -103,7 +102,6 @@ static GQuark quark_focus_object = 0;
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_WIDGET, GailWidget, gail_widget, GTK_TYPE_WIDGET)
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_CONTAINER, GailContainer, gail_container, GTK_TYPE_CONTAINER)
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_BUTTON, GailButton, gail_button, GTK_TYPE_BUTTON)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_LINK_BUTTON, GailLinkButton, gail_link_button, GTK_TYPE_LINK_BUTTON)
 GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_MENU_ITEM, GailMenuItem, gail_menu_item, gail_menu_item_new)
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_TOGGLE_BUTTON, GailToggleButton, gail_toggle_button, GTK_TYPE_TOGGLE_BUTTON)
 GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_COMBO_BOX, GailComboBox, gail_combo_box, GTK_TYPE_COMBO_BOX)
@@ -868,7 +866,6 @@ gail_accessibility_module_init (void)
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_WIDGET, gail_widget);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CONTAINER, gail_container);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_BUTTON, gail_button);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_LINK_BUTTON, gail_link_button);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_MENU_ITEM, gail_menu_item);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_TOGGLE_BUTTON, gail_toggle_button);
   GAIL_WIDGET_SET_FACTORY (GTK_TYPE_COMBO_BOX, gail_combo_box);
diff --git a/gtk/a11y/gaillinkbutton.c b/gtk/a11y/gaillinkbutton.c
deleted file mode 100644 (file)
index 7bc7187..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2011 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gaillinkbutton.h"
-
-typedef struct _GailLinkButtonLink GailLinkButtonLink;
-typedef struct _GailLinkButtonLinkClass GailLinkButtonLinkClass;
-
-struct _GailLinkButtonLink
-{
-  AtkHyperlink parent;
-
-  GailLinkButton *button;
-};
-
-struct _GailLinkButtonLinkClass
-{
-  AtkHyperlinkClass parent_class;
-};
-
-static void atk_action_interface_init (AtkActionIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GailLinkButtonLink, gail_link_button_link, ATK_TYPE_HYPERLINK,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
-
-static AtkHyperlink *
-gail_link_button_link_new (GailLinkButton *button)
-{
-  GailLinkButtonLink *link;
-
-  link = g_object_new (gail_link_button_link_get_type (), NULL);
-  link->button = button;
-
-  return ATK_HYPERLINK (link);
-}
-
-static gchar *
-gail_link_button_link_get_uri (AtkHyperlink *link,
-                               gint          i)
-{
-  GailLinkButtonLink *l = (GailLinkButtonLink *)link;
-  GtkWidget *widget;
-  const gchar *uri;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (l->button));
-  uri = gtk_link_button_get_uri (GTK_LINK_BUTTON (widget));
-
-  return g_strdup (uri);
-}
-
-static gint
-gail_link_button_link_get_n_anchors (AtkHyperlink *link)
-{
-  return 1;
-}
-
-static gboolean
-gail_link_button_link_is_valid (AtkHyperlink *link)
-{
-  return TRUE;
-}
-
-static AtkObject *
-gail_link_button_link_get_object (AtkHyperlink *link,
-                                  gint          i)
-{
-  GailLinkButtonLink *l = (GailLinkButtonLink *)link;
-
-  return ATK_OBJECT (l->button);
-}
-
-static gint
-gail_link_button_link_get_start_index (AtkHyperlink *link)
-{
-  return 0;
-}
-
-static gint
-gail_link_button_link_get_end_index (AtkHyperlink *link)
-{
-  GailLinkButtonLink *l = (GailLinkButtonLink *)link;
-
-  return atk_text_get_character_count (ATK_TEXT (l->button));
-}
-
-static void
-gail_link_button_link_init (GailLinkButtonLink *link)
-{
-}
-
-static void
-gail_link_button_link_class_init (GailLinkButtonLinkClass *class)
-{
-  AtkHyperlinkClass *hyperlink_class = ATK_HYPERLINK_CLASS (class);
-
-  hyperlink_class->get_uri = gail_link_button_link_get_uri;
-  hyperlink_class->get_n_anchors = gail_link_button_link_get_n_anchors;
-  hyperlink_class->is_valid = gail_link_button_link_is_valid;
-  hyperlink_class->get_object = gail_link_button_link_get_object;
-  hyperlink_class->get_start_index = gail_link_button_link_get_start_index;
-  hyperlink_class->get_end_index = gail_link_button_link_get_end_index;
-}
-
-static gboolean
-gail_link_button_link_do_action (AtkAction *action,
-                                 gint       i)
-{
-  GailLinkButtonLink *link = (GailLinkButtonLink *)action;
-  GtkWidget *widget;
-
-  widget = GTK_WIDGET (link->button);
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  gtk_button_clicked (GTK_BUTTON (widget));
-
-  return TRUE;
-}
-
-static gint
-gail_link_button_link_get_n_actions (AtkAction *action)
-{
-  return 1;
-}
-
-static const gchar *
-gail_link_button_link_get_name (AtkAction *action,
-                                gint i)
-{
-  g_return_val_if_fail (i == 0, NULL);
-
-  return "activate";
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gail_link_button_link_do_action;
-  iface->get_n_actions = gail_link_button_link_get_n_actions;
-  iface->get_name = gail_link_button_link_get_name;
-}
-
-static gboolean
-activate_link (GtkLinkButton *button, AtkHyperlink *link)
-{
-  g_signal_emit_by_name (link, "link-activated");
-
-  return FALSE;
-}
-
-static AtkHyperlink *
-gail_link_button_get_hyperlink (AtkHyperlinkImpl *impl)
-{
-  GailLinkButton *button = GAIL_LINK_BUTTON (impl);
-
-  if (!button->link)
-    {
-      button->link = gail_link_button_link_new (button);
-      g_signal_connect (gtk_accessible_get_widget (GTK_ACCESSIBLE (button)),
-                        "activate-link", G_CALLBACK (activate_link), button->link);
-    }
-
-  return g_object_ref (button->link);
-}
-
-static void atk_hypertext_impl_interface_init (AtkHyperlinkImplIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GailLinkButton, gail_link_button, GAIL_TYPE_BUTTON,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_HYPERLINK_IMPL, atk_hypertext_impl_interface_init))
-
-static void
-gail_link_button_init (GailLinkButton *button)
-{
-}
-
-static void
-gail_link_button_finalize (GObject *object)
-{
-  GailLinkButton *button = GAIL_LINK_BUTTON (object);
-
-  if (button->link)
-    g_object_unref (button->link);
-
-  G_OBJECT_CLASS (gail_link_button_parent_class)->finalize (object);
-}
-
-static void
-gail_link_button_class_init (GailLinkButtonClass *klass)
-{
-  G_OBJECT_CLASS (klass)->finalize = gail_link_button_finalize;
-}
-
-static void
-atk_hypertext_impl_interface_init (AtkHyperlinkImplIface *iface)
-{
-  iface->get_hyperlink = gail_link_button_get_hyperlink;
-}
diff --git a/gtk/a11y/gaillinkbutton.h b/gtk/a11y/gaillinkbutton.h
deleted file mode 100644 (file)
index 5c7d233..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2011 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_LINK_BUTTON_H__
-#define __GAIL_LINK_BUTTON_H__
-
-#include "gailbutton.h"
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_LINK_BUTTON                (gail_link_button_get_type ())
-#define GAIL_LINK_BUTTON(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_LINK_BUTTON, GailLinkButton))
-#define GAIL_LINK_BUTTON_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_LINK_BUTTON, GailLinkButtonClass))
-#define GAIL_IS_LINK_BUTTON(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_LINK_BUTTON))
-#define GAIL_IS_LINK_BUTTON_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_LINK_BUTTON))
-#define GAIL_LINK_BUTTON_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_LINK_BUTTON, GailLinkButtonClass))
-
-typedef struct _GailLinkButton                   GailLinkButton;
-typedef struct _GailLinkButtonClass              GailLinkButtonClass;
-
-struct _GailLinkButton
-{
-  GailButton parent;
-
-  AtkHyperlink *link;
-};
-
-GType gail_link_button_get_type (void);
-
-struct _GailLinkButtonClass
-{
-  GailButtonClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_LINK_BUTTON_H__ */
diff --git a/gtk/a11y/gtklinkbuttonaccessible.c b/gtk/a11y/gtklinkbuttonaccessible.c
new file mode 100644 (file)
index 0000000..fc2590c
--- /dev/null
@@ -0,0 +1,222 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtklinkbuttonaccessible.h"
+
+typedef struct _GtkLinkButtonAccessibleLink GtkLinkButtonAccessibleLink;
+typedef struct _GtkLinkButtonAccessibleLinkClass GtkLinkButtonAccessibleLinkClass;
+
+struct _GtkLinkButtonAccessibleLink
+{
+  AtkHyperlink parent;
+
+  GtkLinkButtonAccessible *button;
+};
+
+struct _GtkLinkButtonAccessibleLinkClass
+{
+  AtkHyperlinkClass parent_class;
+};
+
+static void atk_action_interface_init (AtkActionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkLinkButtonAccessibleLink, gtk_link_button_accessible_link, ATK_TYPE_HYPERLINK,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
+
+static AtkHyperlink *
+gtk_link_button_accessible_link_new (GtkLinkButtonAccessible *button)
+{
+  GtkLinkButtonAccessibleLink *link;
+
+  link = g_object_new (gtk_link_button_accessible_link_get_type (), NULL);
+  link->button = button;
+
+  return ATK_HYPERLINK (link);
+}
+
+static gchar *
+gtk_link_button_accessible_link_get_uri (AtkHyperlink *link,
+                               gint          i)
+{
+  GtkLinkButtonAccessibleLink *l = (GtkLinkButtonAccessibleLink *)link;
+  GtkWidget *widget;
+  const gchar *uri;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (l->button));
+  uri = gtk_link_button_get_uri (GTK_LINK_BUTTON (widget));
+
+  return g_strdup (uri);
+}
+
+static gint
+gtk_link_button_accessible_link_get_n_anchors (AtkHyperlink *link)
+{
+  return 1;
+}
+
+static gboolean
+gtk_link_button_accessible_link_is_valid (AtkHyperlink *link)
+{
+  return TRUE;
+}
+
+static AtkObject *
+gtk_link_button_accessible_link_get_object (AtkHyperlink *link,
+                                  gint          i)
+{
+  GtkLinkButtonAccessibleLink *l = (GtkLinkButtonAccessibleLink *)link;
+
+  return ATK_OBJECT (l->button);
+}
+
+static gint
+gtk_link_button_accessible_link_get_start_index (AtkHyperlink *link)
+{
+  return 0;
+}
+
+static gint
+gtk_link_button_accessible_link_get_end_index (AtkHyperlink *link)
+{
+  GtkLinkButtonAccessibleLink *l = (GtkLinkButtonAccessibleLink *)link;
+
+  return atk_text_get_character_count (ATK_TEXT (l->button));
+}
+
+static void
+gtk_link_button_accessible_link_init (GtkLinkButtonAccessibleLink *link)
+{
+}
+
+static void
+gtk_link_button_accessible_link_class_init (GtkLinkButtonAccessibleLinkClass *class)
+{
+  AtkHyperlinkClass *hyperlink_class = ATK_HYPERLINK_CLASS (class);
+
+  hyperlink_class->get_uri = gtk_link_button_accessible_link_get_uri;
+  hyperlink_class->get_n_anchors = gtk_link_button_accessible_link_get_n_anchors;
+  hyperlink_class->is_valid = gtk_link_button_accessible_link_is_valid;
+  hyperlink_class->get_object = gtk_link_button_accessible_link_get_object;
+  hyperlink_class->get_start_index = gtk_link_button_accessible_link_get_start_index;
+  hyperlink_class->get_end_index = gtk_link_button_accessible_link_get_end_index;
+}
+
+static gboolean
+gtk_link_button_accessible_link_do_action (AtkAction *action,
+                                 gint       i)
+{
+  GtkLinkButtonAccessibleLink *link = (GtkLinkButtonAccessibleLink *)action;
+  GtkWidget *widget;
+
+  widget = GTK_WIDGET (link->button);
+  if (widget == NULL)
+    /*
+     * State is defunct
+     */
+    return FALSE;
+
+  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
+    return FALSE;
+
+  gtk_button_clicked (GTK_BUTTON (widget));
+
+  return TRUE;
+}
+
+static gint
+gtk_link_button_accessible_link_get_n_actions (AtkAction *action)
+{
+  return 1;
+}
+
+static const gchar *
+gtk_link_button_accessible_link_get_name (AtkAction *action,
+                                          gint       i)
+{
+  g_return_val_if_fail (i == 0, NULL);
+
+  return "activate";
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_link_button_accessible_link_do_action;
+  iface->get_n_actions = gtk_link_button_accessible_link_get_n_actions;
+  iface->get_name = gtk_link_button_accessible_link_get_name;
+}
+
+static gboolean
+activate_link (GtkLinkButton *button, AtkHyperlink *link)
+{
+  g_signal_emit_by_name (link, "link-activated");
+
+  return FALSE;
+}
+
+static AtkHyperlink *
+gtk_link_button_accessible_get_hyperlink (AtkHyperlinkImpl *impl)
+{
+  GtkLinkButtonAccessible *button = GTK_LINK_BUTTON_ACCESSIBLE (impl);
+
+  if (!button->link)
+    {
+      button->link = gtk_link_button_accessible_link_new (button);
+      g_signal_connect (gtk_accessible_get_widget (GTK_ACCESSIBLE (button)),
+                        "activate-link", G_CALLBACK (activate_link), button->link);
+    }
+
+  return g_object_ref (button->link);
+}
+
+static void atk_hypertext_impl_interface_init (AtkHyperlinkImplIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkLinkButtonAccessible, gtk_link_button_accessible, GAIL_TYPE_BUTTON,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_HYPERLINK_IMPL, atk_hypertext_impl_interface_init))
+
+static void
+gtk_link_button_accessible_init (GtkLinkButtonAccessible *button)
+{
+}
+
+static void
+gtk_link_button_accessible_finalize (GObject *object)
+{
+  GtkLinkButtonAccessible *button = GTK_LINK_BUTTON_ACCESSIBLE (object);
+
+  if (button->link)
+    g_object_unref (button->link);
+
+  G_OBJECT_CLASS (gtk_link_button_accessible_parent_class)->finalize (object);
+}
+
+static void
+gtk_link_button_accessible_class_init (GtkLinkButtonAccessibleClass *klass)
+{
+  G_OBJECT_CLASS (klass)->finalize = gtk_link_button_accessible_finalize;
+}
+
+static void
+atk_hypertext_impl_interface_init (AtkHyperlinkImplIface *iface)
+{
+  iface->get_hyperlink = gtk_link_button_accessible_get_hyperlink;
+}
diff --git a/gtk/a11y/gtklinkbuttonaccessible.h b/gtk/a11y/gtklinkbuttonaccessible.h
new file mode 100644 (file)
index 0000000..ff944c7
--- /dev/null
@@ -0,0 +1,53 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_LINK_BUTTON_ACCESSIBLE_H__
+#define __GTK_LINK_BUTTON_ACCESSIBLE_H__
+
+#include "gailbutton.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_LINK_BUTTON_ACCESSIBLE                (gtk_link_button_accessible_get_type ())
+#define GTK_LINK_BUTTON_ACCESSIBLE(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_LINK_BUTTON_ACCESSIBLE, GtkLinkButtonAccessible))
+#define GTK_LINK_BUTTON_ACCESSIBLE_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_LINK_BUTTON_ACCESSIBLE, GtkLinkButtonAccessibleClass))
+#define GTK_IS_LINK_BUTTON_ACCESSIBLE(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_LINK_BUTTON_ACCESSIBLE))
+#define GTK_IS_LINK_BUTTON_ACCESSIBLE_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_LINK_BUTTON_ACCESSIBLE))
+#define GTK_LINK_BUTTON_ACCESSIBLE_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_LINK_BUTTON_ACCESSIBLE, GtkLinkButtonAccessibleClass))
+
+typedef struct _GtkLinkButtonAccessible      GtkLinkButtonAccessible;
+typedef struct _GtkLinkButtonAccessibleClass GtkLinkButtonAccessibleClass;
+
+struct _GtkLinkButtonAccessible
+{
+  GailButton parent;
+
+  AtkHyperlink *link;
+};
+
+struct _GtkLinkButtonAccessibleClass
+{
+  GailButtonClass parent_class;
+};
+
+GType gtk_link_button_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_LINK_BUTTON_ACCESSIBLE_H__ */
index b98972fe62cd6e716d1e6b5a75007561d0a05e3b..cafa3aaacb36564ab872f4bf34be7b8c2095bfbc 100644 (file)
@@ -63,9 +63,9 @@
 #include "gtkstock.h"
 #include "gtkshow.h"
 #include "gtktooltip.h"
-
 #include "gtkintl.h"
 
+#include "a11y/gtklinkbuttonaccessible.h"
 
 struct _GtkLinkButtonPrivate
 {
@@ -214,6 +214,8 @@ gtk_link_button_class_init (GtkLinkButtonClass *klass)
                   _gtk_boolean_handled_accumulator, NULL,
                   _gtk_marshal_BOOLEAN__VOID,
                   G_TYPE_BOOLEAN, 0);
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LINK_BUTTON_ACCESSIBLE);
 }
 
 static void